package com.sparkseries.service;



import com.sparkseries.domain.vo.SysPositionVO;
import com.sparkseries.dto.SysPositionDTO;
import com.sparkseries.common.util.domain.Result;

import java.util.List;

/**
 * 接口定义了与岗位相关的业务操作
 *
 */
public interface SysPositionService {

    /**
     * 创建多个岗位
     *
     * @param positions 岗位对象列表
     * @return 包含插入结果的 Result对象
     */
    Result<?> createPositions(List<SysPositionDTO> positions);

    /**
     * 获取所有岗位信息
     *
     * @return 包含所有岗位信息的 Result对象
     */
    Result<List<SysPositionVO>> getAllPosition();

    /**
     * 删除多个岗位（逻辑删除，设置 is_enabled 为 0）
     *
     * @param ids 岗位ID列表
     * @return 包含删除结果的 Result对象
     */
    Result<?> deletePositions(List<Integer> ids);

    /**
     * 更新岗位信息
     *
     * @param position 岗位对象，包含需要更新的信息
     * @return 包含更新结果的 Result对象
     */
    Result<?> updatePosition(SysPositionDTO position);

    /**
     * 根据岗位ID获取岗位信息
     *
     * @param id 岗位ID
     * @return 包含岗位信息的 Result对象
     */
    Result<SysPositionVO> getPositionById(Integer id);

    /**
     * 根据条件查询岗位信息
     *
     * @param position 包含查询条件的岗位对象
     * @return 包含符合条件的岗位信息的 Result对象
     */
    Result<List<SysPositionVO>> findPositionByCondition(SysPositionDTO position);
}
